﻿package plugin.activity.handler
{
    import cmd.*;
    import com.core.*;
    import com.sh.game.global.*;
    import flash.geom.*;
    import flash.utils.*;
    import plugin.fcactivity.*;
    import plugin.newvip.model.*;
    import pluginfw.nio.imsg.*;

    public class OnlineHandler extends Object implements IGroupHandler
    {
        private var roledatakeys:Array;
        private var _timeArr:Array;
        private var _ftimeID:uint = 0;
        private var _timeID:uint = 0;
        private var isFirst:Boolean = true;

        public function OnlineHandler()
        {
            this.roledatakeys = ["guide", "shouchong", "fuhuocount", "inittime", "cqxb", "curid", "qdmonth", "tglayer", "ems", "qdlq", "lastupdate", "ontime", "money", "tgid", "todayonline", "emsrefresh", "ollq", "gzupdatetime", "shouji", "qd", "fuhuotime", "onlinelj", "onlinetime", "onlinegz", "getclient", "dayinstances", "instancereset", "haswing", "loginday", "jyz", "getpay", "payreward", "daypay", "daypayreward", "emsbuy", "cfdaypay", "cfdayreward", "ssontime", "lixiantime", "jinzhuan", "dayusemoney", "scfanpai", "kflibao", "MBtime", "guanyin", "djgytishi", "supertd", "swyfloor", "armcount", "collect", "reinnum", "armhc", "guanzhilingqu", "shengwanggetnum", "lianzhitimes", "compoundlimit", "EXP_PILL_EVERYDAY_USE_TIME", "VIP_DAY_EXP_PILL_USE_COUNT", "instanceresetcost", "hefudaypay"];
            this._timeArr = [0, 5 * 60, 15 * 60, 30 * 60, 60 * 60];
            return;
        }// end function

        public function dealSimpleMessage(param1:ISimpleMessage) : void
        {
            var _loc_2:Object = null;
            var _loc_3:Array = null;
            var _loc_4:int = 0;
            var _loc_5:Object = null;
            var _loc_6:String = null;
            var _loc_7:Object = null;
            var _loc_8:Object = null;
            var _loc_9:Object = null;
            var _loc_10:Boolean = false;
            var _loc_11:Boolean = false;
            var _loc_12:Boolean = false;
            var _loc_13:Boolean = false;
            var _loc_14:Boolean = false;
            var _loc_15:Boolean = false;
            var _loc_16:Boolean = false;
            var _loc_17:int = 0;
            var _loc_18:Object = null;
            var _loc_19:Object = null;
            var _loc_20:String = null;
            var _loc_21:int = 0;
            var _loc_22:Boolean = false;
            var _loc_23:int = 0;
            var _loc_24:int = 0;
            var _loc_25:Object = null;
            var _loc_26:Array = null;
            var _loc_27:int = 0;
            var _loc_28:Array = null;
            var _loc_29:int = 0;
            switch(param1.getCmd())
            {
                case CMDOnline.Openday:
                {
                    _loc_2 = param1.getParam();
                    ModelProxy.change("data", "openday", _loc_2);
                    ModelProxy.change("mainui", "activeBoradCast", _loc_2);
                    ModelProxy.change("mainui", "updateactive", _loc_2);
                    break;
                }
                case CMDOnline.GetOnline:
                {
                    _loc_2 = param1.getParam();
                    ModelProxy.change("data", "logindaycount", _loc_2[1]);
                    ModelProxy.change("data", "hefuloginday", _loc_2[2]);
                    _loc_2 = _loc_2[0];
                    _loc_5 = new Object();
                    _loc_6 = "";
                    _loc_17 = 0;
                    while (_loc_17 < this.roledatakeys.length)
                    {
                        
                        if (_loc_17 < _loc_2.length)
                        {
                            _loc_6 = this.roledatakeys[_loc_17];
                            _loc_5[_loc_6] = _loc_2[_loc_17];
                        }
                        _loc_17++;
                    }
                    ModelProxy.change("data", "hefu", _loc_2[this.roledatakeys.length]);
                    ModelProxy.change("data", "hefuday", _loc_2[(this.roledatakeys.length + 1)]);
                    _loc_2 = _loc_5;
                    ModelProxy.change("data", "roledata", _loc_5);
                    UserData.initOnline(_loc_5);
                    _loc_2.logintime = int((ModelProxy.getValue("data", "servertime") + Number(getTimer())) / 1000);
                    ModelProxy.change("mainui", "roledataisInit", null);
                    _loc_7 = new Object();
                    if (int(_loc_5.xunbaoid) > 4)
                    {
                        _loc_7.xunbaotime = -1;
                    }
                    else
                    {
                        _loc_7.xunbaotime = this._timeArr[int(_loc_5.xunbaoid)] - int(_loc_5.xunbaoontime);
                        if (_loc_7.xunbaotime < 0)
                        {
                            _loc_7.xunbaotime = 0;
                        }
                    }
                    _loc_8 = new Object();
                    if (int(_loc_5.vipxunbaoid) > 4)
                    {
                        _loc_8.vipxunbaotime = -1;
                    }
                    else
                    {
                        _loc_8.vipxunbaotime = this._timeArr[int(_loc_5.vipxunbaoid)] - int(_loc_5.vipxunbaoontime);
                        if (_loc_8.vipxunbaotime < 0)
                        {
                            _loc_8.vipxunbaotime = 0;
                        }
                    }
                    ModelProxy.change("mainui", "initBtnGroup", null);
                    ModelProxy.change("data", "xunbaotime", _loc_7);
                    ModelProxy.change("data", "xunbaoviptime", _loc_8);
                    ModelProxy.change("data", "dayinstances", _loc_5.dayinstances);
                    ModelProxy.change("mainui", "dayInstanceChange", null);
                    ModelProxy.change("data", "instancereset", _loc_5.instancereset);
                    ModelProxy.change("tasktrack", "getonline", _loc_5);
                    if (this.isFirst)
                    {
                        this.checkInstanceCount();
                        ModelProxy.change("guide", "initguide", null);
                        ModelProxy.change("guide", "initguidetask", null);
                        VipCheck.VipCheckOver();
                        this.updatefashiontime(UserData.getOnlineData("fashiontimeup"));
                        ModelProxy.change("mainui", "xunbaotime", null);
                        ModelProxy.change("mainui", "xunbaoviptime", null);
                        ModelProxy.change("mainui", "wdreward", null);
                        ModelProxy.change("mainui", "wdqd", null);
                        ModelProxy.change("mainui", "wdsp", null);
                        ModelProxy.change("mainui", "wdzq", null);
                        ModelProxy.change("mainui", "wdyy", null);
                        ModelProxy.change("mainui", "wdjf", null);
                        ModelProxy.change("mainui", "wdfl", null);
                        ModelProxy.change("mainui", "wdlx", null);
                        ModelProxy.change("mainui", "wdsz", null);
                        ModelProxy.change("mainui", "wdsj", null);
                        this.isFirst = false;
                    }
                    ModelProxy.change("data", "kflibaolog", _loc_5.kflibao);
                    break;
                }
                case CMDOnline.getonlineInfo:
                {
                    _loc_2 = param1.getParam();
                    ModelProxy.change("online", "getonline", _loc_2);
                    break;
                }
                case CMDOnline.GetActive:
                {
                    _loc_3 = param1.getParam();
                    ModelProxy.change("data", "activebonus", _loc_3);
                    _loc_4 = 0;
                    while (_loc_4 < 5)
                    {
                        
                        if (_loc_3[_loc_4] == 2)
                        {
                            ModelProxy.change("mainui", "playhuoyue", null);
                            break;
                        }
                        _loc_4++;
                    }
                    break;
                }
                case CMDOnline.UpdateOnline:
                {
                    _loc_9 = UserData.getOnlineData();
                    _loc_3 = param1.getParam();
                    _loc_10 = false;
                    _loc_11 = false;
                    _loc_12 = false;
                    _loc_13 = false;
                    _loc_14 = false;
                    _loc_15 = false;
                    _loc_16 = false;
                    if (_loc_9 == null)
                    {
                        return;
                    }
                    _loc_4 = 0;
                    while (_loc_4 < _loc_3.length)
                    {
                        
                        _loc_9[_loc_3[_loc_4]] = _loc_3[(_loc_4 + 1)];
                        if (_loc_3[_loc_4] == "vip" || _loc_3[_loc_4] == "viplevel" || _loc_3[_loc_4] == "vipscout" || _loc_3[_loc_4] == "viptime" || _loc_3[_loc_4] == "vipcache" || _loc_3[_loc_4] == "fristvip")
                        {
                            _loc_10 = true;
                        }
                        else if (_loc_3[_loc_4] == "vipzhuanshu")
                        {
                            _loc_11 = true;
                        }
                        else if (_loc_3[_loc_4] == "reinnum")
                        {
                            ModelProxy.change("zhuan", "updatezhuan", null);
                        }
                        else if (_loc_3[_loc_4] == "getpay")
                        {
                            ModelProxy.change("leijichongzhi", "getPay", _loc_3[(_loc_4 + 1)]);
                            ModelProxy.change("leftTishi", "showLJCZ", 1);
                            ModelProxy.change("gongceQD", "getPay", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "dayusemoney")
                        {
                            ModelProxy.change("gongceMrcz", "getMoney", _loc_3[(_loc_4 + 1)]);
                            ModelProxy.change("hefuhuodong", "showXiaoFei", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "fashiontimeup")
                        {
                            this.updatefashiontime(_loc_3[(_loc_4 + 1)], 1);
                        }
                        else if (_loc_3[_loc_4] == "payreward")
                        {
                            ModelProxy.change("leijichongzhi", "getreward", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "hfpay")
                        {
                            ModelProxy.change("hefuhuodong", "showLeiji", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "hfpayreward")
                        {
                            ModelProxy.change("hefuhuodong", "getreward", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "hflibao")
                        {
                            ModelProxy.change("hefuhuodong", "getlibao", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "kflibao")
                        {
                            _loc_18 = _loc_3[(_loc_4 + 1)];
                            ModelProxy.change("kaifujj", "getlibao", _loc_18);
                            ModelProxy.change("mainui", "updateactive", _loc_18);
                            _loc_19 = ModelProxy.getValue("data", "kflibaolog");
                            if (_loc_19 == null)
                            {
                                ModelProxy.change("kaifujj", "showGetlibao", _loc_18.source[0]);
                                ModelProxy.change("data", "kflibaolog", _loc_18);
                            }
                            else
                            {
                                for (_loc_20 in _loc_18.source)
                                {
                                    
                                    _loc_21 = _loc_18.source[_loc_20];
                                    _loc_22 = false;
                                    for each (_loc_23 in _loc_19.source)
                                    {
                                        
                                        if (_loc_21 == _loc_23)
                                        {
                                            _loc_22 = true;
                                            break;
                                        }
                                    }
                                    if (!_loc_22)
                                    {
                                        ModelProxy.change("kaifujj", "showGetlibao", _loc_21);
                                        ModelProxy.change("data", "kflibaolog", _loc_18);
                                        break;
                                    }
                                }
                            }
                        }
                        else if (_loc_3[_loc_4] == "hfwing")
                        {
                            ModelProxy.change("hefuhuodong", "showWing", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "hfhorse")
                        {
                            ModelProxy.change("hefuhuodong", "showHorse", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "scfanpai")
                        {
                            ModelProxy.change("qirifanpai", "getPai", _loc_3[(_loc_4 + 1)]);
                            ModelProxy.change("qirifanpai", "fanPai", _loc_3[(_loc_4 + 1)]);
                            ModelProxy.change("leftTishi", "showFanPai", null);
                        }
                        else if (_loc_3[_loc_4] == "daypay")
                        {
                            ModelProxy.change("meirishouchong", "daypay", _loc_3[(_loc_4 + 1)]);
                            ModelProxy.change("mrlc", "getreward", _loc_3[(_loc_4 + 1)]);
                            _loc_24 = ModelProxy.getValue("data", "openday");
                            if (_loc_24 > 5)
                            {
                                _loc_24 = 5;
                            }
                            else if (!_loc_24)
                            {
                                _loc_24 = 1;
                            }
                            _loc_25 = UserData.getOnlineData("daypayreward");
                            _loc_26 = [];
                            _loc_27 = 0;
                            _loc_28 = ConfigDictionary.data.daypayreward;
                            if (_loc_25)
                            {
                                for each (_loc_29 in _loc_25)
                                {
                                    
                                    if (_loc_29 == 1)
                                    {
                                        _loc_26.push(_loc_29);
                                    }
                                }
                                if (_loc_26.length == 5)
                                {
                                    return;
                                }
                                if (_loc_28[(_loc_26.length + 1) + "_" + _loc_24] && _loc_28[(_loc_26.length + 1) + "_" + _loc_24].money)
                                {
                                    _loc_27 = _loc_28[(_loc_26.length + 1) + "_" + _loc_24].money;
                                }
                            }
                            else if (_loc_28["1_" + _loc_24] && _loc_28["1_" + _loc_24].money)
                            {
                                _loc_27 = _loc_28["1_" + _loc_24].money;
                            }
                            if (_loc_3[(_loc_4 + 1)] < _loc_27)
                            {
                                ModelProxy.change("mainui", "showEffect", {ab:"mrlc", state:false});
                            }
                            else
                            {
                                ModelProxy.change("mainui", "showEffect", {ab:"mrlc", state:true});
                            }
                        }
                        else if (_loc_3[_loc_4] == "daypayreward")
                        {
                            ModelProxy.change("meirishouchong", "daypayreward", _loc_3[(_loc_4 + 1)]);
                            ModelProxy.change("mrlc", "getreward", _loc_3[(_loc_4 + 1)]);
                            ModelProxy.change("plugin", "close", "meirishouchong");
                        }
                        else if (_loc_3[_loc_4] == "cfdaypay")
                        {
                            ModelProxy.change("meirilibao", "cfdaypay", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "cfdayreward")
                        {
                            ModelProxy.change("meirilibao", "cfdayreward", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "xunbaoid")
                        {
                            ModelProxy.change("xunbao", "xunbaoid", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "vipxunbaoid")
                        {
                            ModelProxy.change("xunbao", "vipxunbaoid", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "freexyfm")
                        {
                            ModelProxy.change("taskdialog", "getFreeNum", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "ems")
                        {
                            ModelProxy.change("tasktrack", "getonline", _loc_9);
                        }
                        else if (_loc_3[_loc_4] == "gettejie")
                        {
                            ModelProxy.change("mainui", "gettejie", null);
                        }
                        else if (_loc_3[_loc_4] == "jinzhuan")
                        {
                            ModelProxy.change("mainui", "showJinzhuan", null);
                            ModelProxy.change("mainui", "wdgd", null);
                        }
                        else if (_loc_3[_loc_4] == "newbirdcoms")
                        {
                            ModelProxy.change("kaifuhd", "initnum", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "ontime")
                        {
                            _loc_14 = true;
                        }
                        else if (_loc_3[_loc_4] == "curid")
                        {
                            _loc_14 = true;
                            ModelProxy.change("online", "Online", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "hfsc")
                        {
                            ModelProxy.change("hefuhuodong", "getShouChong", "");
                        }
                        else if (_loc_3[_loc_4] == "MBtime")
                        {
                            _loc_16 = true;
                            ModelProxy.change("mainui", "updateGoddess", null);
                        }
                        else if (_loc_3[_loc_4] == "guanyin")
                        {
                        }
                        else if (_loc_3[_loc_4] == "mobaisbk")
                        {
                            ModelProxy.change("sbkinfo", "mobaisbk", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "djgytishi")
                        {
                            ModelProxy.change("mainui", "updateactive", _loc_3[(_loc_4 + 1)]);
                            ModelProxy.change("guanyinget", "updatebtn", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "armhc")
                        {
                            ModelProxy.change("shenlu", "getinfo", null);
                        }
                        else if (_loc_3[_loc_4] == "mbliquan")
                        {
                            ModelProxy.change("goddess", "mbliquan", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "mbgold")
                        {
                            ModelProxy.change("goddess", "mbgold", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "guanzhilingqu")
                        {
                            ModelProxy.change("guanwei", "guanzhilingqu", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "shengwanggetnum")
                        {
                            ModelProxy.change("guanwei", "duihuancount", _loc_3[(_loc_4 + 1)]);
                        }
                        else if (_loc_3[_loc_4] == "lianzhitimes")
                        {
                            ModelProxy.change("lianzhiexp", "getlianzhitimes", _loc_3[(_loc_4 + 1)]);
                            if (_loc_3[(_loc_4 + 1)] >= 5)
                            {
                                ModelProxy.change("mainui", "removeBtn", "lianzhiexp");
                            }
                        }
                        else if (_loc_3[_loc_4] == "fengce_login")
                        {
                            FCActivityUtil.checkCanGet();
                        }
                        else if (_loc_3[_loc_4] == "instanceresetcost")
                        {
                            ModelProxy.change("specialActivity", "updateBossReward", _loc_3[_loc_4]);
                        }
                        else if (_loc_3[_loc_4] == "hefudaypay")
                        {
                            ModelProxy.change("specialActivity", "updateStateChange", null);
                        }
                        _loc_4 = _loc_4 + 2;
                    }
                    if (_loc_16)
                    {
                        ModelProxy.change("goddess", "update", null);
                        ModelProxy.change("mainui", "updateGoddessCount", null);
                    }
                    if (_loc_15)
                    {
                        ModelProxy.change("csinstance", "updateData", null);
                    }
                    if (_loc_10)
                    {
                        ModelProxy.change("vip", "updatevip", null);
                        VipCheck.VipCheckOver();
                        ModelProxy.change("role", "refreshvip", null);
                        ModelProxy.change("goddess", "refresh", null);
                        ModelProxy.change("mainui", "updateGoddessCount", null);
                    }
                    if (_loc_12)
                    {
                        ModelProxy.change("monopoly", "getReward", null);
                    }
                    if (_loc_10 || _loc_11)
                    {
                        ModelProxy.change("vipreward", "updateRewards", null);
                    }
                    if (_loc_13)
                    {
                        ModelProxy.change("monopoly", "refreshcost", null);
                        ModelProxy.change("mainui", "refreshOnlineBtn", null);
                    }
                    if (_loc_14)
                    {
                        ModelProxy.change("mainui", "refreshOnlineBtn", null);
                    }
                    break;
                }
                default:
                {
                    break;
                }
            }
            return;
        }// end function

        public function dealBufferMessage(param1:IBufferMessage) : void
        {
            switch(param1.pluginfw.nio.imsg:IBufferMessage::getCmd())
            {
                default:
                {
                    break;
                }
            }
            return;
        }// end function

        public function dealProxyMessage(param1:IProxyMessage) : void
        {
            return;
        }// end function

        public function updatefashiontime(param1:int, param2:int = 0) : void
        {
            var _loc_4:int = 0;
            var _loc_5:int = 0;
            var _loc_3:* = UserData.getOnlineData("fashiontimeup");
            if (this._ftimeID > 0)
            {
                clearTimeout(this._ftimeID);
                this._ftimeID = 0;
            }
            if (param1 > 0)
            {
                _loc_5 = (ModelProxy.getValue("data", "servertime") + Number(getTimer())) / 1000;
                if (param2 == 1)
                {
                    _loc_4 = param1 - _loc_5;
                    if (_loc_4 == 0)
                    {
                        this.fashionupdate();
                    }
                    else if (_loc_4 == 3600)
                    {
                        this.fashionupdate();
                    }
                    else if (_loc_4 < 100000)
                    {
                        if (_loc_4 > 3600)
                        {
                            this._ftimeID = setTimeout(this.fashionupdate, (_loc_4 - 3600) * 1000);
                        }
                        else if (_loc_4 > 0)
                        {
                            this._ftimeID = setTimeout(this.fashionupdate, _loc_4 * 1000);
                        }
                    }
                }
                else
                {
                    _loc_4 = param1 - _loc_5 - 3600;
                    if (_loc_4 > 0)
                    {
                        if (_loc_4 < 100000)
                        {
                            this._ftimeID = setTimeout(this.fashionupdate, _loc_4 * 1000);
                        }
                    }
                    else
                    {
                        this.fashionupdate();
                    }
                }
            }
            return;
        }// end function

        private function fashionupdate() : void
        {
            return;
        }// end function

        private function checkInstanceCount() : int
        {
            var _loc_6:* = undefined;
            var _loc_7:Array = null;
            var _loc_8:Object = null;
            var _loc_9:Object = null;
            var _loc_10:Array = null;
            var _loc_1:* = ConfigDictionary.data.instanceGate;
            var _loc_2:* = ModelProxy.getValue("data", "dayinstances");
            var _loc_3:* = UserData.getUserData();
            var _loc_4:* = ConfigDictionary.data.instance;
            var _loc_5:int = 0;
            for (_loc_6 in _loc_1)
            {
                
                _loc_7 = _loc_1[_loc_6];
                for each (_loc_8 in _loc_7)
                {
                    
                    if (_loc_8.mapid)
                    {
                        _loc_9 = _loc_4[_loc_8.mapid];
                        if (_loc_9)
                        {
                            _loc_10 = String(_loc_9.limit_times).split(" ");
                            if (_loc_9.open_level <= _loc_3.level)
                            {
                                if (_loc_2 == null || !_loc_2.hasOwnProperty(_loc_8.mapid))
                                {
                                    _loc_5 = _loc_5 + int(_loc_10[1]);
                                    continue;
                                }
                                if (int(_loc_2[_loc_8.mapid]) < int(_loc_10[1]))
                                {
                                    _loc_5 = _loc_5 + (int(_loc_10[1]) - int(_loc_2[_loc_8.mapid]));
                                }
                            }
                        }
                    }
                }
            }
            return _loc_5;
        }// end function

        private function showFlashUpdate() : void
        {
            var _loc_1:* = ModelProxy.getValue("data", "noupdate");
            if (_loc_1)
            {
                return;
            }
            var _loc_2:* = GlobalLayer.instance.root.stageWidth;
            var _loc_3:* = GlobalLayer.instance.root.stageHeight;
            ModelProxy.change("plugin", "open", {target:"flashupdate", point:new Point(_loc_2 - 400, _loc_3 - 294)});
            return;
        }// end function

    }
}
